var bcrypt = dcodeIO.bcrypt;      //use the bcrypt library

function signup() {
    const name = document.getElementById('newname').value;
    const email = document.getElementById('newemail').value;
    const password1 = document.getElementById('newpassword1').value;
    const password2 = document.getElementById('newpassword2').value;

    if (password1 === password2) {
        //Do something 
        // create a random salt value 
        // encrypt the password with the salt 
        const salt = bcrypt.genSaltSync(10);
        const hashedPassword = bcrypt.hashSync(password1, salt);

        // read the current users array 
        // push this user into the users array 
        users = JSON.parse(localStorage.getItem("users"));
        if (users === null)    //if there are no users yet 
            users = [];          //initialize it to empty 
        users.push({ name, email, password: hashedPassword, count:0, history: []});

        alert('User registered with hashed password.  Welcome ' + name);

        localStorage.setItem("users", JSON.stringify(users));
        window.location.href = "./login.html";

    } else {
        alert('Passwords do not match!');
    }
}

function login() {
    // read the "database" of users from local storage 
    users = JSON.parse(localStorage.getItem("users"));

    // read the login email and password 
    const email = document.getElementById('email').value;
    const password = document.getElementById('password').value;

    const user = users.find(u => u.email === email);

    // if exists, and the password matches 
    // then successful login. 
    // save this "loggedinUser" into local storage 
    if (user && bcrypt.compareSync(password, user.password)) {
        alert('Login successful!  for ' + user.name);
        localStorage.setItem("loggedinUser", JSON.stringify(user));
        window.location.href = "./main.html";
    } else {
        alert('Login failed.');
    }
}